package com.chinairi.mall.model;

import java.math.BigDecimal;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.chinairi.common.model.BaseModel;
import com.baomidou.mybatisplus.annotation.TableField;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * <p>
 * 供应商查看商品的一些基本信息和一些维护功能，比如上下架，起订量的设置
//供应商上架表
//供应
 * </p>
 *
 * @author gsl
 * @since 2020-09-13
 */
@TableName("GOODS_INFO")
public class GoodsInfo extends BaseModel {

    private static final long serialVersionUID = 1L;

    /**
     * 商品表主键
     */
    @TableId("GOODS_DBID")
    private String goodsDbid;

    /**
     * 商品分类编码id
     */
    @TableField("GOODS_CLASS_DBID")
    @NotBlank(message = "商品所属分类不能为空")
    private String goodsClassDbid;

    /**
     * 店铺表主键
     */
    @TableField("CS_DBID")
    private String csDbid;

    /**
     * 企业表主键
     */
    @TableField("UCI_DBID")
    private String uciDbid;

    /**
     * GOODS所属合同id
     */
    @TableField("GOODS_CONTRACT_ID")
    @NotBlank(message = "所属合同不能为空")
    private String goodsContractId;

    /**
     * GOODS商品名
     */
    @TableField("GOODS_NAME")
    private String goodsName;

    /**
     * GOODS商品编码
     */
    @TableField("GOODS_CODE")
    private String goodsCode;

    /**
     * GOODS物料名称
     */
    @TableField("GOODS_MAT_NAME")
    private String goodsMatName;

    /**
     * GOODS物料编码
     */
    @TableField("GOODS_MAT_CODE")
    private String goodsMatCode;

    /**
     * GOODS商品品牌(手录)
     */
    @TableField("GOODS_BRAND")
    private String goodsBrand;

    /**
     * GOODS规格型号
     */
    @TableField("GOODS_SPECIFICATIONS")
    private String goodsSpecifications;

    /**
     * GOODS规范级别
     */
    @TableField("GOODS_SPECIFICATION_LEVEL")
    private String goodsSpecificationLevel;

    /**
     * GOODS安全库存
     */
    @TableField("GOODS_SAFETY_STOCK")
    private Float goodsSafetyStock;

    /**
     * GOODS采购周期
     */
    @TableField("GOODS_PURCHASE_CYCLE")
    private String goodsPurchaseCycle;

    /**
     * GOODS损耗率
     */
    @TableField("GOODS_LOSS_LATE")
    private Float goodsLossLate;

    /**
     * GOODS制造周期
     */
    @TableField("GOODS_PRODUCE_CYCLE")
    private String goodsProduceCycle;

    /**
     * GOODS图号
     */
    @TableField("GOODS_DRAW_NO")
    private String goodsDrawNo;

    /**
     * GOODS材质
     */
    @TableField("GOODS_MAT_TEXTURE")
    private String goodsMatTexture;

    /**
     * GOODS执行标准
     */
    @TableField("GOODS_IMPLEMENT_STANDARD")
    private String goodsImplementStandard;

    /**
     * GOODS可供采购量
     */
    @TableField("GOODS_CAN_BUY")
    private Float goodsCanBuy;

    /**
     * GOODS商品分类编码
     */
    @TableField("GOODS_GOODS_CLASS")
    private String goodsGoodsClass;

    /**
     * GOODS物料分类
     */
    @TableField("GOODS_MAT_TYPE")
    private Integer goodsMatType;

    /**
     * GOODS最小起订量(手录)
     */
    @TableField("GOODS_MIN_CAN_BUY")
    private Float goodsMinCanBuy;

    /**
     * 初始为0显示未上架， 1 已上架  
     */
    @TableField("GOODS_SHELF_STATE")
    private Integer goodsShelfState;

    /**
     * GOODS库存
     */
    @TableField("GOODS_STOCK")
    private Float goodsStock;

    /**
     * GOODS基本计量单位
     */
    @TableField("GOODS_MEASUER_UNIT")
    private String goodsMeasuerUnit;

    /**
     * GOODS辅助计量单位
     */
    @TableField("GOODS_ASSIST_MEASURE")
    private String goodsAssistMeasure;

    /**
     * GOODS已售量
     */
    @TableField("GOODS_SOLD")
    private Float goodsSold;

    /**
     * GOODS商品四新属性(手录)
     */
    @TableField("GOODS_GOODS_ATTRIBUTE")
    private String goodsGoodsAttribute;

    /**
     * GOODS商品重量(g)
     */
    @TableField("GOODS_GOODS_WEIGHT")
    private BigDecimal goodsGoodsWeight;

    /**
     * GOODS合同价
     */
    @TableField("GOODS_CONTRACT_PRICE")
    private Float goodsContractPrice;

    /**
     * GOODS非合同价(手录)
     */
    @TableField("GOODS_NO_CONTRACT_PRICE")
    private Float goodsNoContractPrice;

    /**
     * GOODS商品描述(手录)
     */
    @TableField("GOODS_GOODS_DESCRIPTION")
    private String goodsGoodsDescription;

    /**
     * GOODS是否标准产品
     */
    @TableField("GOODS_IS_CONTRACT")
    private String goodsIsContract;

    /**
     * GOODS设置可见
     */
    @TableField("GOODS_SET_VISIBLE")
    private Integer goodsSetVisible;

    /**
     * GOODS审核状态
     */
    @TableField("GOODS_APPROVE_STATUS")
    private Integer goodsApproveStatus;

    /**
     * 审核状态编码值
     */
    @TableField(exist = false)
    private String goodsApproveStatusLabel;

    /**
     * GOODS机构ID
     */
    @TableField("GOODS_ORGID")
    private String goodsOrgid;

    /**
     * GOODS创建人
     */
    @TableField("GOODS_CREATE_USER")
    private String goodsCreateUser;

    /**
     * GOODS创建时间
     */
    @TableField("GOODS_CREATE_TIME")
    private Date goodsCreateTime;

    /**
     * GOODS修改人
     */
    @TableField("GOODS_UPDATE_USER")
    private String goodsUpdateUser;

    /**
     * GOODS修改时间
     */
    @TableField("GOODS_UPDATE_TIME")
    private Date goodsUpdateTime;

    public String getGoodsDbid() {
        return goodsDbid;
    }

    public void setGoodsDbid(String goodsDbid) {
        this.goodsDbid = goodsDbid;
    }
    public String getGoodsClassDbid() {
        return goodsClassDbid;
    }

    public void setGoodsClassDbid(String goodsClassDbid) {
        this.goodsClassDbid = goodsClassDbid;
    }
    public String getCsDbid() {
        return csDbid;
    }

    public void setCsDbid(String csDbid) {
        this.csDbid = csDbid;
    }
    public String getUciDbid() {
        return uciDbid;
    }

    public void setUciDbid(String uciDbid) {
        this.uciDbid = uciDbid;
    }
    public String getGoodsContractId() {
        return goodsContractId;
    }

    public void setGoodsContractId(String goodsContractId) {
        this.goodsContractId = goodsContractId;
    }
    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }
    public String getGoodsCode() {
        return goodsCode;
    }

    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }
    public String getGoodsMatName() {
        return goodsMatName;
    }

    public void setGoodsMatName(String goodsMatName) {
        this.goodsMatName = goodsMatName;
    }
    public String getGoodsMatCode() {
        return goodsMatCode;
    }

    public void setGoodsMatCode(String goodsMatCode) {
        this.goodsMatCode = goodsMatCode;
    }
    public String getGoodsBrand() {
        return goodsBrand;
    }

    public void setGoodsBrand(String goodsBrand) {
        this.goodsBrand = goodsBrand;
    }
    public String getGoodsSpecifications() {
        return goodsSpecifications;
    }

    public void setGoodsSpecifications(String goodsSpecifications) {
        this.goodsSpecifications = goodsSpecifications;
    }
    public String getGoodsSpecificationLevel() {
        return goodsSpecificationLevel;
    }

    public void setGoodsSpecificationLevel(String goodsSpecificationLevel) {
        this.goodsSpecificationLevel = goodsSpecificationLevel;
    }
    public Float getGoodsSafetyStock() {
        return goodsSafetyStock;
    }

    public void setGoodsSafetyStock(Float goodsSafetyStock) {
        this.goodsSafetyStock = goodsSafetyStock;
    }
    public String getGoodsPurchaseCycle() {
        return goodsPurchaseCycle;
    }

    public String getGoodsApproveStatusLabel() {
        return goodsApproveStatusLabel;
    }

    public void setGoodsApproveStatusLabel(String goodsApproveStatusLabel) {
        this.goodsApproveStatusLabel = goodsApproveStatusLabel;
    }

    public void setGoodsPurchaseCycle(String goodsPurchaseCycle) {
        this.goodsPurchaseCycle = goodsPurchaseCycle;
    }
    public Float getGoodsLossLate() {
        return goodsLossLate;
    }

    public void setGoodsLossLate(Float goodsLossLate) {
        this.goodsLossLate = goodsLossLate;
    }
    public String getGoodsProduceCycle() {
        return goodsProduceCycle;
    }

    public void setGoodsProduceCycle(String goodsProduceCycle) {
        this.goodsProduceCycle = goodsProduceCycle;
    }
    public String getGoodsDrawNo() {
        return goodsDrawNo;
    }

    public void setGoodsDrawNo(String goodsDrawNo) {
        this.goodsDrawNo = goodsDrawNo;
    }
    public String getGoodsMatTexture() {
        return goodsMatTexture;
    }

    public void setGoodsMatTexture(String goodsMatTexture) {
        this.goodsMatTexture = goodsMatTexture;
    }
    public String getGoodsImplementStandard() {
        return goodsImplementStandard;
    }

    public void setGoodsImplementStandard(String goodsImplementStandard) {
        this.goodsImplementStandard = goodsImplementStandard;
    }
    public Float getGoodsCanBuy() {
        return goodsCanBuy;
    }

    public void setGoodsCanBuy(Float goodsCanBuy) {
        this.goodsCanBuy = goodsCanBuy;
    }
    public String getGoodsGoodsClass() {
        return goodsGoodsClass;
    }

    public void setGoodsGoodsClass(String goodsGoodsClass) {
        this.goodsGoodsClass = goodsGoodsClass;
    }
    public Integer getGoodsMatType() {
        return goodsMatType;
    }

    public void setGoodsMatType(Integer goodsMatType) {
        this.goodsMatType = goodsMatType;
    }
    public Float getGoodsMinCanBuy() {
        return goodsMinCanBuy;
    }

    public void setGoodsMinCanBuy(Float goodsMinCanBuy) {
        this.goodsMinCanBuy = goodsMinCanBuy;
    }
    public Integer getGoodsShelfState() {
        return goodsShelfState;
    }

    public void setGoodsShelfState(Integer goodsShelfState) {
        this.goodsShelfState = goodsShelfState;
    }
    public Float getGoodsStock() {
        return goodsStock;
    }

    public void setGoodsStock(Float goodsStock) {
        this.goodsStock = goodsStock;
    }
    public String getGoodsMeasuerUnit() {
        return goodsMeasuerUnit;
    }

    public void setGoodsMeasuerUnit(String goodsMeasuerUnit) {
        this.goodsMeasuerUnit = goodsMeasuerUnit;
    }
    public String getGoodsAssistMeasure() {
        return goodsAssistMeasure;
    }

    public void setGoodsAssistMeasure(String goodsAssistMeasure) {
        this.goodsAssistMeasure = goodsAssistMeasure;
    }
    public Float getGoodsSold() {
        return goodsSold;
    }

    public void setGoodsSold(Float goodsSold) {
        this.goodsSold = goodsSold;
    }
    public String getGoodsGoodsAttribute() {
        return goodsGoodsAttribute;
    }

    public void setGoodsGoodsAttribute(String goodsGoodsAttribute) {
        this.goodsGoodsAttribute = goodsGoodsAttribute;
    }
    public BigDecimal getGoodsGoodsWeight() {
        return goodsGoodsWeight;
    }

    public void setGoodsGoodsWeight(BigDecimal goodsGoodsWeight) {
        this.goodsGoodsWeight = goodsGoodsWeight;
    }
    public Float getGoodsContractPrice() {
        return goodsContractPrice;
    }

    public void setGoodsContractPrice(Float goodsContractPrice) {
        this.goodsContractPrice = goodsContractPrice;
    }
    public Float getGoodsNoContractPrice() {
        return goodsNoContractPrice;
    }

    public void setGoodsNoContractPrice(Float goodsNoContractPrice) {
        this.goodsNoContractPrice = goodsNoContractPrice;
    }
    public String getGoodsGoodsDescription() {
        return goodsGoodsDescription;
    }

    public void setGoodsGoodsDescription(String goodsGoodsDescription) {
        this.goodsGoodsDescription = goodsGoodsDescription;
    }
    public String getGoodsIsContract() {
        return goodsIsContract;
    }

    public void setGoodsIsContract(String goodsIsContract) {
        this.goodsIsContract = goodsIsContract;
    }
    public Integer getGoodsSetVisible() {
        return goodsSetVisible;
    }

    public void setGoodsSetVisible(Integer goodsSetVisible) {
        this.goodsSetVisible = goodsSetVisible;
    }
    public Integer getGoodsApproveStatus() {
        return goodsApproveStatus;
    }

    public void setGoodsApproveStatus(Integer goodsApproveStatus) {
        this.goodsApproveStatus = goodsApproveStatus;
    }
    public String getGoodsOrgid() {
        return goodsOrgid;
    }

    public void setGoodsOrgid(String goodsOrgid) {
        this.goodsOrgid = goodsOrgid;
    }
    public String getGoodsCreateUser() {
        return goodsCreateUser;
    }

    public void setGoodsCreateUser(String goodsCreateUser) {
        this.goodsCreateUser = goodsCreateUser;
    }
    public Date getGoodsCreateTime() {
        return goodsCreateTime;
    }

    public void setGoodsCreateTime(Date goodsCreateTime) {
        this.goodsCreateTime = goodsCreateTime;
    }
    public String getGoodsUpdateUser() {
        return goodsUpdateUser;
    }

    public void setGoodsUpdateUser(String goodsUpdateUser) {
        this.goodsUpdateUser = goodsUpdateUser;
    }
    public Date getGoodsUpdateTime() {
        return goodsUpdateTime;
    }

    public void setGoodsUpdateTime(Date goodsUpdateTime) {
        this.goodsUpdateTime = goodsUpdateTime;
    }

    @Override
    public String toString() {
        return "GoodsInfo{" +
                "goodsDbid='" + goodsDbid + '\'' +
                ", goodsClassDbid='" + goodsClassDbid + '\'' +
                ", csDbid='" + csDbid + '\'' +
                ", uciDbid='" + uciDbid + '\'' +
                ", goodsContractId='" + goodsContractId + '\'' +
                ", goodsName='" + goodsName + '\'' +
                ", goodsCode='" + goodsCode + '\'' +
                ", goodsMatName='" + goodsMatName + '\'' +
                ", goodsMatCode='" + goodsMatCode + '\'' +
                ", goodsBrand='" + goodsBrand + '\'' +
                ", goodsSpecifications='" + goodsSpecifications + '\'' +
                ", goodsSpecificationLevel='" + goodsSpecificationLevel + '\'' +
                ", goodsSafetyStock=" + goodsSafetyStock +
                ", goodsPurchaseCycle='" + goodsPurchaseCycle + '\'' +
                ", goodsLossLate=" + goodsLossLate +
                ", goodsProduceCycle='" + goodsProduceCycle + '\'' +
                ", goodsDrawNo='" + goodsDrawNo + '\'' +
                ", goodsMatTexture='" + goodsMatTexture + '\'' +
                ", goodsImplementStandard='" + goodsImplementStandard + '\'' +
                ", goodsCanBuy=" + goodsCanBuy +
                ", goodsGoodsClass='" + goodsGoodsClass + '\'' +
                ", goodsMatType=" + goodsMatType +
                ", goodsMinCanBuy=" + goodsMinCanBuy +
                ", goodsShelfState=" + goodsShelfState +
                ", goodsStock=" + goodsStock +
                ", goodsMeasuerUnit='" + goodsMeasuerUnit + '\'' +
                ", goodsAssistMeasure='" + goodsAssistMeasure + '\'' +
                ", goodsSold=" + goodsSold +
                ", goodsGoodsAttribute='" + goodsGoodsAttribute + '\'' +
                ", goodsGoodsWeight=" + goodsGoodsWeight +
                ", goodsContractPrice=" + goodsContractPrice +
                ", goodsNoContractPrice=" + goodsNoContractPrice +
                ", goodsGoodsDescription='" + goodsGoodsDescription + '\'' +
                ", goodsIsContract='" + goodsIsContract + '\'' +
                ", goodsSetVisible=" + goodsSetVisible +
                ", goodsApproveStatus=" + goodsApproveStatus +
                ", goodsApproveStatusLabel='" + goodsApproveStatusLabel + '\'' +
                ", goodsOrgid='" + goodsOrgid + '\'' +
                ", goodsCreateUser='" + goodsCreateUser + '\'' +
                ", goodsCreateTime=" + goodsCreateTime +
                ", goodsUpdateUser='" + goodsUpdateUser + '\'' +
                ", goodsUpdateTime=" + goodsUpdateTime +
                '}';
    }
}
